润乾 · 开源免费BI

您所在的位置:网站首页 报表引擎 开源 润乾 · 开源免费BI

润乾 · 开源免费BI

#润乾 · 开源免费BI| 来源: 网络整理| 查看: 265

DQL模型 举例

进销存系统涉及的4个表:订单表orders、员工表employee、部门表department、区域表area。表间存在如下关联关系:

常规多级外键关联,如:订单.emp_id = 员工.emp_id、员工.dept_id = 部门.dept_id 表间自关联,如:地区.pid=地区.id 相互关联,如:员工.dept_id = 部门.dept_id,同时,员工.emp_id = 部门.manager 两表多字段关联,如:订单.send_city=地区.area_id,订单.recieve_city=地区.area_id 常规多级关联

多级关联是指一次查询涉及的多个表需要通过逐级外键实施关联完成查询计算

查询目标:哪些部门的哪些员工在什么时间签过订单

通过这种方式就可以拖拽3个表的所有字段进行查询,完成多级外键关联查询,生成的DQL语句也很好理解:

select emp_id.dept_id.dept_name 部门, emp_id.emp_name 员工, order_date 签单日期 from orders 自关联

自关联是指一个表两个字段之间存在关联关系,常用于存储多层数据

查询目标:各发货地区、省、市的订单明细

自关联的层级可能非常多,通过这种方式可以应对任意层级的自关联。生成的DQL如下:

select send_city.name 市, send_city.pid.name 省, send_city.pid.pid.name 地区 from orders 相互关联

相互关联是指两个表互为外键表,彼此分别有字段指向另一张表

查询目标:各部门经理、员工信息

相互关联与自关联类似,也会存在多层。DQL仍然可以处理任意层的相互关联。语句如下:

select emp_name 员工, dept_id.manger. emp_name 经理 from employee 两表多关联

两表多关联是指一个表中有多个字段与同一个表关联

查询目标:订单的发货和收货城市信息

无论有多少字段指向同一张表,都不用重复选出多遍。DQL语句:

select send_city.name 发货城市, receive_city.name 收货城市 from orders


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3